从特征工程到XGBoost参数调优 |
您所在的位置:网站首页 › xgboost 类别型特征 › 从特征工程到XGBoost参数调优 |
前言 本文陈述脉络:理论结合kaggle上一个具体的比赛。 正文数据科学的一般流程结合以下案例分析: Two Sigma Connect: Rental Listing Inquiries 任务:根据公寓的listing 内容,预测纽约市某公寓租赁listing的受欢迎程度标签: interest_level,该listing被咨询的次数 选择这个案例是因为小而精,虽然只有14维特征,但是基本上都涉及各种类型特征。 有三个取值:: ‘high’, ‘medium’, ‘low’,是一个多类分类任务 Listing内容有: 浴室和卧室的数目bathrooms, bedrooms 地理位置( longitude 、 latitude ) 地址: display_address、 street_address building_id、 listing_id、 manager_id Created:创建日期 Description:更多描述信息 features: 公寓的一些特征描述 photos: a list of photo links 价格:price 数据分析方法对数据进行探索性的分析的工具包:pandas、 matplotlib/seaborn 读取训练数据,取少量样本进行观测,并查看数据规模和数据类型 标签、特征意义、特征类型等分析每列特征的分布 直方图 包括标签列(对分类问题,可看出类别样本是否均衡) 检测奇异点(outliers) 分析每两列特征之间的相关性 – 特征与特征之间信息是否冗余 – 特征与标签是否线性相关 histogram 直方图直方图:每个取值在数据集中出现的次数,可视为概率函 数(PDF)的估计(seaborn可视化工具比较简单) 123import seaborn as sns%matplotlib inline( seaborn 是基于matplotlib 的)sns.distplot(train.price.values, bins=50, kde=True)核密度估计 Kernel Density Estimation, KDE 对直方图的加窗平滑在分类任务中,我们关心不同类别的特征分布 violinplot 提供不同类别条件下特征更多的分部信息 核密度估计(KDE) 三个4分位数(quartile):1/4, 1/2, 3/4 1.5倍四分数间距(nterquartile range, IQR) IQR :第三四分位数和第一分位数的区别(即Q1~Q3的差距),表示变量的分散情况,播放差更稳健的统计量 12order = ['low', 'medium', 'high']sns.violinplot(x='interest_level', y='price', data=train, order = order)奇异点:或称离群点,指远离大多数样本的样本点。通常认为这些点是噪声,对模型有坏影响 可以通过直方图或散点图发现奇异点 直方图的尾巴 散点图上孤立的点 12345plt.figure(figsize=(8,6))plt.scatter(range(train_df.shape[0]), train_df.price.values, color = color[6])plt.xlabel('the number of train data', fontsize=12)plt.ylabel('price', fontsize=12)plt.show()可以通过只保留某些分位数内的点去掉奇异点 如0.5%-99.5%,或>99% 12ulimit = np.percentile(train.price.values, 99)train['price'].loc[train['price']>ulimit] = ulimit correlation 相关性相关性可以通过计算相关系数或打印散点图来发现 相关系数:两个随机变量x,y之间的线性相关程度,不线性相关并不代表不相关,可能高阶相关,如 $y=x^2$ $r = \frac{\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum_{i=0}^{n}}(x_i-\bar{x})^2\sum_{i=0}^{n}(y_i-\bar{y})^2}, -1\le r \le 1$ 通常 $|r| > 0.5$ ,认为两者相关性比较强 $r\cases{=0, &\text{完全线性不相关}\ >0, &\text{正相关}\ |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |